#include "stm32f10x.h"                  // Device header


void pwm_init(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

	GPIO_InitTypeDef pwm_gpio_init;
	pwm_gpio_init.GPIO_Mode=GPIO_Mode_AF_PP;
	pwm_gpio_init.GPIO_Pin=GPIO_Pin_0;
	pwm_gpio_init.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&pwm_gpio_init);
	
	TIM_InternalClockConfig(TIM2);	
	TIM_TimeBaseInitTypeDef pwm_tim_init;
	TIM_TimeBaseStructInit(&pwm_tim_init);
	pwm_tim_init.TIM_CounterMode=TIM_CounterMode_Up;
	pwm_tim_init.TIM_Period=1000;//arr
	pwm_tim_init.TIM_Prescaler=1000;//psc
	TIM_TimeBaseInit(TIM2,&pwm_tim_init);


	TIM_OCInitTypeDef pwm_oc_init;
	TIM_OCStructInit(&pwm_oc_init);
	pwm_oc_init.TIM_OCMode=TIM_OCMode_PWM1;
	pwm_oc_init.TIM_OutputState=TIM_OutputState_Enable;
	pwm_oc_init.TIM_Pulse=0;//ccr
	TIM_OC1Init(TIM2,&pwm_oc_init);

	TIM_Cmd(TIM2, ENABLE);

}

void pwm_setduty(int duty)
{
	TIM_SetCompare1(TIM2,duty);
}
